package com.huilian.iotbox.data.enums;

import lombok.Getter;

/**
 * @author chenqiwen
 * @CreateDate: 2022-05-12-10-30
 * @Description:
 */
@Getter
public enum IotBoxCmdEnum {

    AA00DD(0, "00", "通用指令，已配置的没有匹配就用这个"),
    AA01DD(1, "01", ""),
    AA02DD(2, "02", ""),
    AA03DD(3, "03", "通用投币"),
    AA04DD(4, "04", ""),
    AA05DD(5, "05", "通用查询参数结果"),
    AA06DD(6, "06", "通用设置参数结果"),
    AA07DD(7, "07", ""),
    AA08DD(8, "08", ""),
    AA09DD(9, "09", ""),
    AA0ADD(10, "0A", ""),
    AA0BDD(11, "0B", ""),
    AA0CDD(12, "0C", ""),
    AA0DDD(13, "0D", ""),
    AA0EDD(14, "0E", ""),
    AA0FDD(15, "0F", ""),
    AA10DD(16, "10", ""),
    AA11DD(17, "11", ""),
    AA12DD(18, "12", ""),
    AA13DD(19, "13", "娃娃机账目上报"),
    AA14DD(20, "14", ""),
    AA15DD(21, "15", "兑币机、充电桩设置参数结果"),
    AA16DD(22, "16", ""),
    AA17DD(23, "17", ""),
    AA18DD(24, "18", ""),
    AA19DD(25, "19", ""),
    AA1ADD(26, "1A", ""),
    AA1BDD(27, "1B", ""),
    AA1CDD(28, "1C", ""),
    AA1DDD(29, "1D", ""),
    AA1EDD(30, "1E", ""),
    AA1FDD(31, "1F", ""),
    AA20DD(32, "20", ""),
    AA21DD(33, "21", ""),
    AA22DD(34, "22", ""),
    AA23DD(35, "23", ""),
    AA24DD(36, "24", ""),
    AA25DD(37, "25", ""),
    AA26DD(38, "26", ""),
    AA27DD(39, "27", ""),
    AA28DD(40, "28", ""),
    AA29DD(41, "29", ""),
    AA2ADD(42, "2A", ""),
    AA2BDD(43, "2B", ""),
    AA2CDD(44, "2C", ""),
    AA2DDD(45, "2D", ""),
    AA2EDD(46, "2E", ""),
    AA2FDD(47, "2F", ""),
    AA30DD(48, "30", ""),
    AA31DD(49, "31", ""),
    AA32DD(50, "32", ""),
    AA33DD(51, "33", ""),
    AA34DD(52, "34", ""),
    AA35DD(53, "35", ""),
    AA36DD(54, "36", ""),
    AA37DD(55, "37", ""),
    AA38DD(56, "38", ""),
    AA39DD(57, "39", ""),
    AA3ADD(58, "3A", ""),
    AA3BDD(59, "3B", ""),
    AA3CDD(60, "3C", ""),
    AA3DDD(61, "3D", ""),
    AA3EDD(62, "3E", ""),
    AA3FDD(63, "3F", ""),
    AA40DD(64, "40", ""),
    AA41DD(65, "41", ""),
    AA42DD(66, "42", ""),
    AA43DD(67, "43", ""),
    AA44DD(68, "44", ""),
    AA45DD(69, "45", ""),
    AA46DD(70, "46", ""),
    AA47DD(71, "47", ""),
    AA48DD(72, "48", ""),
    AA49DD(73, "49", ""),
    AA4ADD(74, "4A", ""),
    AA4BDD(75, "4B", ""),
    AA4CDD(76, "4C", ""),
    AA4DDD(77, "4D", ""),
    AA4EDD(78, "4E", ""),
    AA4FDD(79, "4F", ""),
    AA50DD(80, "50", ""),
    AA51DD(81, "51", ""),
    AA52DD(82, "52", ""),
    AA53DD(83, "53", ""),
    AA54DD(84, "54", ""),
    AA55DD(85, "55", ""),
    AA56DD(86, "56", ""),
    AA57DD(87, "57", ""),
    AA58DD(88, "58", ""),
    AA59DD(89, "59", ""),
    AA5ADD(90, "5A", ""),
    AA5BDD(91, "5B", ""),
    AA5CDD(92, "5C", ""),
    AA5DDD(93, "5D", ""),
    AA5EDD(94, "5E", ""),
    AA5FDD(95, "5F", ""),
    AA60DD(96, "60", ""),
    AA61DD(97, "61", ""),
    AA62DD(98, "62", ""),
    AA63DD(99, "63", ""),
    AA64DD(100, "64", ""),
    AA65DD(101, "65", ""),
    AA66DD(102, "66", ""),
    AA67DD(103, "67", ""),
    AA68DD(104, "68", ""),
    AA69DD(105, "69", ""),
    AA6ADD(106, "6A", ""),
    AA6BDD(107, "6B", ""),
    AA6CDD(108, "6C", ""),
    AA6DDD(109, "6D", ""),
    AA6EDD(110, "6E", ""),
    AA6FDD(111, "6F", ""),
    AA70DD(112, "70", ""),
    AA71DD(113, "71", ""),
    AA72DD(114, "72", ""),
    AA73DD(115, "73", ""),
    AA74DD(116, "74", ""),
    AA75DD(117, "75", ""),
    AA76DD(118, "76", ""),
    AA77DD(119, "77", ""),
    AA78DD(120, "78", ""),
    AA79DD(121, "79", ""),
    AA7ADD(122, "7A", ""),
    AA7BDD(123, "7B", ""),
    AA7CDD(124, "7C", ""),
    AA7DDD(125, "7D", ""),
    AA7EDD(126, "7E", ""),
    AA7FDD(127, "7F", ""),
    AA80DD(128, "80", ""),
    AA81DD(129, "81", ""),
    AA82DD(130, "82", ""),
    AA83DD(131, "83", ""),
    AA84DD(132, "84", ""),
    AA85DD(133, "85", ""),
    AA86DD(134, "86", ""),
    AA87DD(135, "87", ""),
    AA88DD(136, "88", ""),
    AA89DD(137, "89", ""),
    AA8ADD(138, "8A", ""),
    AA8BDD(139, "8B", ""),
    AA8CDD(140, "8C", ""),
    AA8DDD(141, "8D", ""),
    AA8EDD(142, "8E", ""),
    AA8FDD(143, "8F", ""),
    AA90DD(144, "90", ""),
    AA91DD(145, "91", ""),
    AA92DD(146, "92", ""),
    AA93DD(147, "93", ""),
    AA94DD(148, "94", ""),
    AA95DD(149, "95", ""),
    AA96DD(150, "96", ""),
    AA97DD(151, "97", ""),
    AA98DD(152, "98", ""),
    AA99DD(153, "99", ""),
    AA9ADD(154, "9A", ""),
    AA9BDD(155, "9B", ""),
    AA9CDD(156, "9C", ""),
    AA9DDD(157, "9D", ""),
    AA9EDD(158, "9E", ""),
    AA9FDD(159, "9F", ""),
    AAA0DD(160, "A0", ""),
    AAA1DD(161, "A1", ""),
    AAA2DD(162, "A2", ""),
    AAA3DD(163, "A3", ""),
    AAA4DD(164, "A4", ""),
    AAA5DD(165, "A5", ""),
    AAA6DD(166, "A6", ""),
    AAA7DD(167, "A7", ""),
    AAA8DD(168, "A8", ""),
    AAA9DD(169, "A9", ""),
    AAAADD(170, "AA", ""),
    AAABDD(171, "AB", ""),
    AAACDD(172, "AC", ""),
    AAADDD(173, "AD", ""),
    AAAEDD(174, "AE", ""),
    AAAFDD(175, "AF", ""),
    AAB0DD(176, "B0", ""),
    AAB1DD(177, "B1", ""),
    AAB2DD(178, "B2", ""),
    AAB3DD(179, "B3", ""),
    AAB4DD(180, "B4", ""),
    AAB5DD(181, "B5", ""),
    AAB6DD(182, "B6", ""),
    AAB7DD(183, "B7", ""),
    AAB8DD(184, "B8", ""),
    AAB9DD(185, "B9", ""),
    AABADD(186, "BA", ""),
    AABBDD(187, "BB", ""),
    AABCDD(188, "BC", ""),
    AABDDD(189, "BD", ""),
    AABEDD(190, "BE", ""),
    AABFDD(191, "BF", ""),
    AAC0DD(192, "C0", ""),
    AAC1DD(193, "C1", ""),
    AAC2DD(194, "C2", ""),
    AAC3DD(195, "C3", ""),
    AAC4DD(196, "C4", ""),
    AAC5DD(197, "C5", ""),
    AAC6DD(198, "C6", ""),
    AAC7DD(199, "C7", ""),
    AAC8DD(200, "C8", ""),
    AAC9DD(201, "C9", ""),
    AACADD(202, "CA", ""),
    AACBDD(203, "CB", ""),
    AACCDD(204, "CC", ""),
    AACDDD(205, "CD", ""),
    AACEDD(206, "CE", ""),
    AACFDD(207, "CF", ""),
    AAD0DD(208, "D0", ""),
    AAD1DD(209, "D1", ""),
    AAD2DD(210, "D2", ""),
    AAD3DD(211, "D3", ""),
    AAD4DD(212, "D4", ""),
    AAD5DD(213, "D5", ""),
    AAD6DD(214, "D6", ""),
    AAD7DD(215, "D7", ""),
    AAD8DD(216, "D8", ""),
    AAD9DD(217, "D9", ""),
    AADADD(218, "DA", ""),
    AADBDD(219, "DB", ""),
    AADCDD(220, "DC", ""),
    AADDDD(221, "DD", ""),
    AADEDD(222, "DE", ""),
    AADFDD(223, "DF", ""),
    AAE0DD(224, "E0", ""),
    AAE1DD(225, "E1", ""),
    AAE2DD(226, "E2", ""),
    AAE3DD(227, "E3", ""),
    AAE4DD(228, "E4", ""),
    AAE5DD(229, "E5", ""),
    AAE6DD(230, "E6", ""),
    AAE7DD(231, "E7", ""),
    AAE8DD(232, "E8", ""),
    AAE9DD(233, "E9", ""),
    AAEADD(234, "EA", ""),
    AAEBDD(235, "EB", ""),
    AAECDD(236, "EC", ""),
    AAEDDD(237, "ED", ""),
    AAEEDD(238, "EE", ""),
    AAEFDD(239, "EF", ""),
    AAF0DD(240, "F0", ""),
    AAF1DD(241, "F1", ""),
    AAF2DD(242, "F2", ""),
    AAF3DD(243, "F3", ""),
    AAF4DD(244, "F4", ""),
    AAF5DD(245, "F5", ""),
    AAF6DD(246, "F6", ""),
    AAF7DD(247, "F7", ""),
    AAF8DD(248, "F8", ""),
    AAF9DD(249, "F9", ""),
    AAFADD(250, "FA", ""),
    AAFBDD(251, "FB", ""),
    AAFCDD(252, "FC", ""),
    AAFDDD(253, "FD", ""),
    AAFEDD(254, "FE", ""),
    AAFFDD(255, "FF", ""),


    AA170C55(5900, "170C", "锁定、解锁某一个端口"),
    AA170D55(5901, "170D", "远程停止某个端口的充电"),
    AA170F55(5903, "170F", "读取设备每个端口状态"),
    AA171455(5908, "1714", "用户付款成功，通知主设备开始充电"),
    AA171555(5909, "1715", "查询当前的充电状态"),
    AA171855(5912, "1718", "设置系统参数"),
    AA171E55(5918, "171E", "读取设备系统参数"),
    AA1802DD(6146, "1802", "好集乐查账"),
    AA1803DD(6147, "1803", "好集乐查询参数结果"),
    AA1820DD(6176, "1820", "好集乐设置参数结果"),
    AA1830DD(6192, "1830", "好集乐启动设备结果"),
    AA1831DD(6193, "1831", "好集乐暂停机器"),
    D101(53505, "D101", "兑币机回复空闲可以出币"),
    D102(53506, "D102", "兑币机投币成功"),
    D103(53507, "D103", "兑币机出币完成"),
    D115(53525, "D115", "设备信息更新"),
    D116(53526, "D116", "会员授权已扫码通知兑币机"),
    D117(53527, "D117", "会员授权登录成功通知兑币机"),
    D118(53528, "D118", "储值套餐更新"),
    AAF101DD(61697, "F101", "棉花糖机通知支付结果"),
    AA1C90E(117006, "01C90E", "售货机通知支付结果"),

    ;

    private Integer cmdId;
    // 功能码，16进制
    private String hexadecimal;
    private String desc;

    IotBoxCmdEnum(Integer cmdId, String hexadecimal, String desc) {
        this.cmdId = cmdId;
        this.hexadecimal = hexadecimal;
        this.desc = desc;
    }

    public static Integer inHexadecimalGetCmdId(String hexadecimal) {
        for (IotBoxCmdEnum value : IotBoxCmdEnum.values()) {
            if (value.getHexadecimal().equalsIgnoreCase(hexadecimal)) {
                return value.getCmdId();
            }
        }
        return null;
    }

    public static void main(String[] args) {
        System.out.println(IotBoxCmdEnum.inHexadecimalGetCmdId("fsfs"));
        System.out.println(IotBoxCmdEnum.inHexadecimalGetCmdId("d101"));
        System.out.println(IotBoxCmdEnum.inHexadecimalGetCmdId("58"));
    }
}
